<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/model/Service/Service.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/model/DAO/DAOManager.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/entities/Responsibility.php';

/**
 * Класс, отвечающий за работу с обязанностями
 */
class ResponsibilityService extends Service {
	
	public function __construct($daoManager){
		parent::__construct($daoManager);
		parent::createDAO("ResponsibilityDAO");
	}
	/**
	 * Сохранение обязанности
	 * @param Responsibillity $resposnobillity Сохраняемая обязанность
	 */
	public function save($resposnobillity){
		if($resposnobillity->getIdentoty() == null ){
			return $this->dao->create($resposnobillity);
		}else{
			return $this->dao->update($resposnobillity);
		}
	}
	
	/**
	 * Прочитать обязанность
	 * @param int $identity Идентефикатор обязанности
	 */
	public function read($identity){
		return $this->dao->read($identity);
	}
	
	/**
	 * Удалить обязаность
	 * @param int $identity Идентефикатор обязанности
	 */
	public function delete($identity){
		return $this->dao->delete($identity);
	}
	
	/**
	 * Добавление записи в таблицу обязанностей, не создавая объект
	 * класса Обязанность
	 * @param int $monitoring Идентефикатор мониторинга
	 * @param int $department Идентефикатор Структурного отделения
	 * @param int $indicator Ндентефикатор индикатора
	 */
	public function putRecord($monitoring,$department,$indicator){
		return $this->dao->putRecord($monitoring,$department,$indicator);
	}

	/**
	 * Заполнение таблицы indicator_value напрямую
	 * @param unknown $quarter Четверть : (1,2,3 или 4)
	 * @param Int $responsibility Идентефикатор обязанности
	 */
	public function putRecordIndicatorValue($quarter,$responsibility){
		return $this->dao->putRecordIndicatorValue($quarter,$responsibility);
	}
	/**
	 * Получить обязанночть по указанному труктурному подразделению
	 * @param int $identity Идентефикатор структурного подразделения
	 */
	public function getByDepartment($identity){
		return $this->dao->getByDepartment($identity);
	}
	/**
	 * Получить обязаноочть по структурному подразделению и году
	 * @param Int $identity Идентефикатор структурного подразделения
	 * @param unknown $year Год
	 */
	public function getByDepartmentAndYear($identity, $year){
		return $this->dao->getByDepartmentAndYear($identity, $year);
	}
	/**
	 * Получить обязаноочть по некоторому условию и году
	 * @param unknown $condition Условие
	 * @param unknown $year Год
	 */
	public function buildWithYear($condition, $year){
		return $this->dao->buildWithYear($condition, $year);
	}
}
?>
